// 若树 B 是 A 的子结构，则子结构的根节点可能是 A 的任意一个节点
// 先遍历树 A 中的每个节点
// 判断树 A 中以 是否包含树 B
// 要么从 A 开始 B 是子树
// B 是 A 的左子树的子结构
// B 是 A 的右子树的子结构

var isSubstructure = function (A , B) {
  if (!B || !A) return false;
  return find(A, B) || isSubstructure(A.left, B) || isSubstructure(A.right, B);
}

function find(A, B) {
  if (!B) return true;
  if (!A || A.val !== B.val) return false;
  return find(A.left, B.left) && find(A.right, B.right)
}